package com.net.xpay.alipay.common.model;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * 支付宝订单支付结果推送
 */
@Getter
@Setter
@NoArgsConstructor
public class AlipayTradeNotifyModel {

    @ApiModelProperty(notes = "通知时间")
    private String notifyTime;

    @ApiModelProperty(notes = "通知类型")
    private String notifyType;

    @ApiModelProperty(notes = "通知校验 ID")
    private String notifyId;

    @ApiModelProperty(notes = "签名类型")
    private String signType;

    @ApiModelProperty(notes = "签名")
    private String sign;

    @ApiModelProperty(notes = "支付宝交易号。支付宝交易凭证号")
    private String tradeNo;

    @ApiModelProperty(notes = "开发者的 app_id")
    private String appId;

    @ApiModelProperty(notes = "开发者的 app_id，在服务商调用的场景下为授权方的 app_id")
    private String authAppId;

    @ApiModelProperty(notes = "商户订单号")
    private String outTradeNo;

    @ApiModelProperty(notes = "商家业务号。商家业务 ID，主要是退款通知中返回退款申请的流水号。")
    private String outBizNo;

    @ApiModelProperty(notes = "买家支付宝用户号。买家支付宝账号对应的支付宝唯一用户号")
    private String buyerId;

    @ApiModelProperty(notes = "买家支付宝账号")
    private String buyerLogonId;

    @ApiModelProperty(notes = "卖家支付宝用户号")
    private String sellerId;

    @ApiModelProperty(notes = "卖家支付宝账号")
    private String sellerEmail;

    @ApiModelProperty(notes = "交易状态。咨询目前所处的状态")
    private String tradeStatus;

    @ApiModelProperty(notes = "订单金额。本次交易支付的订单金额，单位为人民币（元）。支持小数点后两位。")
    private String totalAmount;

    @ApiModelProperty(notes = "实收金额")
    private String receiptAmount;

    @ApiModelProperty(notes = "开票金额。用户在交易中支付的可开发票的金额。支持小数点后两位")
    private String invoiceAmount;

    @ApiModelProperty(notes = "付款金额。用户在咨询中支付的金额。支持小数点后两位。")
    private String buyerPayAmount;

    @ApiModelProperty(notes = "集分宝金额。使用集分宝支付的金额。支持小数点后两位")
    private String pointAmount;

    @ApiModelProperty(notes = "总退款金额。退款通知中，返回总退款金额，单位为元，支持小数点后两位")
    private String refundFee;

    @ApiModelProperty(notes = "实际退款金额。商家实际退款给用户的金额，单位为元，支持小数点后两位")
    private String sendBackFee;

    @ApiModelProperty(notes = "订单标题")
    private String subject;

    @ApiModelProperty(notes = "商品描述。该订单的备注、描述、明细等")
    private String body;

    @ApiModelProperty(notes = "交易创建时间")
    private String gmtCreate;

    @ApiModelProperty(notes = "交易 付款时间。该笔交易的买家付款时间。格式为 yyyy-MM-dd HH:mm:ss")
    private String gmtPayment;

    @ApiModelProperty(notes = "交易退款时间。该笔交易的退款时间。格式 为 yyyy-MM-dd HH:mm:ss.S")
    private String gmtRefund;

    @ApiModelProperty(notes = "交易结束时间。该笔交易结束时间。格式为 yyyy-MM-dd HH:mm:ss")
    private String gmtClose;

    @ApiModelProperty(notes = "支付金额信息。支付成功的各个渠道金额信息")
    private String fundBillList;

    @ApiModelProperty(notes = "优惠券信息")
    private String voucherDetailList;
}
